<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <!-- <input type="text" autofocus>
  <input type="text" autofocus> -->
  <div id="app">
    <input type="text" v-focus />
  </div>
</body>
<script src="lib/vue.js"></script>
<script>
  // 自定义指令 --- 其实就是去做DOM操作
  // 全局自定义指令 --- new Vue之前 在Vue原型上去定义

  // 局部自定义指令

  Vue.directive('focus', {
    /**
    bind：只调用一次，指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置。

    inserted：被绑定元素插入父节点时调用 (仅保证父节点存在，但不一定已被插入文档中)。

    update：所在组件的 VNode 更新时调用，但是可能发生在其子 VNode 更新之前。
    指令的值可能发生了改变，也可能没有。
    但是你可以通过比较更新前后的值来忽略不必要的模板更新 (详细的钩子函数参数见下)。
    
    componentUpdated：指令所在组件的 VNode 及其子 VNode 全部更新后调用。

    unbind：只调用一次，指令与元素解绑时调用。
    */
    // 当被绑定的元素插入到 DOM 中时……
    inserted: function (el) { // el代表当前的DOM元素
      // jsDOM获取输入框的焦点
      el.focus()
    }
  })
  new Vue({
    el: '#app',
    data: {
      
    }
  })
</script>
</html>